package com.sumer.psychology.common.tool;

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

/**
 * use gson json object
 * <p/>
 * Created by twer on 15/8/23.
 */
public class JsonObjectBuilder {
    private JsonObject jsonObject = new JsonObject();

    public static JsonObjectBuilder get() {
        return new JsonObjectBuilder();
    }

    public static JsonObjectBuilder from(JsonObject jsonObject) {
        return new JsonObjectBuilder(jsonObject);
    }

    public static String toJson(String key, JsonObject value) {
        return get().put(key, value).toJson();
    }

    public JsonObjectBuilder() {
    }

    public JsonObjectBuilder(JsonObject jsonObject) {
        this.jsonObject = jsonObject;
    }

    public JsonObjectBuilder put(String key, String value) {
        jsonObject.addProperty(key, value);
        return this;
    }

    public JsonObjectBuilder put(String key, int value) {
        jsonObject.addProperty(key, value);
        return this;
    }

    public JsonObjectBuilder put(String key, JsonObject value) {
        jsonObject.add(key, value);
        return this;
    }

    public JsonObjectBuilder put(String key, JsonArray value) {
        jsonObject.add(key, value);
        return this;
    }

    public String toJson() {
        return jsonObject.toString();
    }

    public JsonObject toObject() {
        return jsonObject;
    }

    public JsonObject toObject(String jsonString) {
        return new JsonParser().parse(jsonString).getAsJsonObject();
    }
}
